// src/api/search.js

const BASE_URL = 'http://localhost:8088/api/search'; // 直接使用完整后端地址

export const searchService = {
    // 统一搜索接口
    async unifiedSearch(type, keyword) {
        try {
            // 参数校验
            if (!keyword || !keyword.trim()) {
                console.warn('搜索关键词为空');
                return [];
            }
            if (type < 1 || type > 3) {
                console.error('无效的搜索类型:', type);
                return [];
            }

            const url = `${BASE_URL}/unified?type=${type}&keyword=${encodeURIComponent(keyword)}`;
            console.log('发起搜索请求:', url);

            const response = await fetch(url);
            const apiMessage = await response.json();

            if (!response.ok) {
                console.error('API请求失败:', apiMessage.message);
                throw new Error(apiMessage.message || `HTTP error! status: ${response.status}`);
            }

            // 检查API业务状态码
            if (apiMessage.code !== 200) {
                console.error('API业务错误:', apiMessage.message);
                return [];
            }

            console.log('搜索成功，返回数据:', apiMessage.data);
            return Array.isArray(apiMessage.data) ? apiMessage.data : [];
        } catch (error) {
            console.error('搜索出错:', error);
            return [];
        }
    },

    // 获取联想建议
    async getSuggestions(keyword) {
        try {
            // 空关键词直接返回空数组
            if (!keyword || !keyword.trim()) {
                return [];
            }

            const url = `${BASE_URL}/suggestions?keyword=${encodeURIComponent(keyword)}`;
            console.log('获取联想建议:', url);

            const response = await fetch(url);
            const apiMessage = await response.json();

            if (!response.ok) {
                console.error('API请求失败:', apiMessage.message);
                throw new Error(apiMessage.message || `HTTP error! status: ${response.status}`);
            }

            // 检查API业务状态码
            if (apiMessage.code !== 200) {
                console.error('API业务错误:', apiMessage.message);
                return [];
            }

            console.log('获取联想建议成功:', apiMessage.data);
            return Array.isArray(apiMessage.data) ? apiMessage.data : [];
        } catch (error) {
            console.error('获取联想建议出错:', error);
            return [];
        }
    }
};